کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

محدوده (scope) و طول عمر (lifetime) متغیرها در سی شارپ

در هر زبان برنامه نویسی اجزای برنامه دارای یک سطح و محدوده دسترسی و همچنین طول عمر می باشند. در زبان سی شارپ نیز برای هر متغیر یک بازه یا scope و همچنین طول عمر یا lifetime تعریف شده است.

نمونه های زیادی از تعریف متغیرهای محلی را مشاهده کردیم.

                
using System;‎

public class Exercise
‎{‎
‎    public static int Main()‎
‎    {‎
‎        int number;‎
‎        return 0;‎
‎    }‎
‎}‎

در برخی موارد، ممکن است متغیری نیاز داشته باشید که توسط متدهای مختلف یک کلاس قابل دسترسی و اصلاح باشند. برای این منظور، می توانید متغیر مورد نظر را بیرون از محدوده ی (تمامی) متدها تعریف کنید. به چنین متغیری، متغیر سراسری (global variable) می گویند.

ایجاد و استفاده از متغیر سراسری

همان طور که پیش تر ذکر شد، برای ایجاد متغیر سراسری، باید آن را (در) بیرون متدها ولی در محدوده ی کلاس تعریف کرد.

مثال:

                
using System;‎

public class Exercise
‎{‎
‎    int number;‎
‎    public static int Main()‎
‎    {‎
‎        return 0;‎
‎    }‎
‎}

پس از تعریف متغیر، می توان از هر متدی داخل کلاس برای دسترسی به آن استفاده کرد، از قبیل اصلاح مقدار آن. مثال های زیر را در نظر بگیرید.

                
using System;‎

public class Exercise
‎{‎
‎    int number;‎

‎    public void Modify()‎
‎    {‎
‎        number = 28;‎
‎    }‎

‎    public void Change()‎
‎    {‎
‎        number = 405;‎
‎    }‎

‎    public static int Main()‎
‎    {‎
‎        Exercise exo = new Exercise();‎
‎        Console.Write("Number: ");‎
‎        Console.WriteLine(exo.number);‎
‎        exo.Modify();‎

‎        Console.Write("Number: ");‎
‎        Console.WriteLine(exo.number);‎
‎        exo.Change();‎
‎        Console.Write("Number: ");‎
‎        Console.WriteLine(exo.number);‎

‎        return 0;‎
‎    }‎
‎}

نتیجه

Number: 0‎
Number: 28‎
Number: 405‎
Press any key to continue...

همچنین می توان از متد برای نشان دادن مقدار متغیر سراسری بهره گرفت.

                
using System;‎

public class Exercise
‎{‎
‎    int number;‎

‎    public void Modify()‎
‎    {‎
‎        number = 28;‎
‎    }‎

‎    public void Change()‎
‎    {‎
‎        number = 405;‎
‎    }‎

‎    public void Show()‎
‎    {‎
‎        Console.Write("Number: ");‎
        Console.WriteLine(number);‎
‎    }‎ 

‎    public static int Main()‎
‎    {‎
‎        Exercise exo = new Exercise();‎
‎        exo.Show();‎
‎        exo.Modify();‎
‎        exo.Show();‎
‎        exo.Change();‎
‎        exo.Show();‎

‎        return 0;‎
‎    }‎
‎}

متغیرهای ایستا و سراسری

درست برخلاف C++، در سی شارپ امکان تعریف متغیر ایستا درون متد وجود ندارد. راه حل آن تعریف متغیر خارج از محدوده ی متد است، سپس می توان به متغیر مورد نظر از هر متدی که به آن نیاز دارد دست پیدا کرد.

مثال:

                
using System;‎

public class Exercise
‎{‎
‎    static int number;‎

‎    public void Modify()‎
‎    {‎
‎        number = 28;‎
‎    }‎

‎    public void Change()‎
‎    {‎
‎        number = 405;‎
‎    }‎

‎    public void Show()‎
‎    {‎
‎        Console.Write("Number: ");‎
        Console.WriteLine(number);‎
‎    }‎

‎    public static int Main()‎
‎    {‎
‎        Exercise exo = new Exercise();‎
‎        exo.Show();‎
‎        exo.Modify();‎
‎        exo.Show();‎
‎        exo.Change();‎
‎        exo.Show();‎
        return 0;‎
‎    }‎
‎}‎‏
1394/07/27 11844 4247
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...